package com.hqyj.javacode.datetype;
/**
 * 重点！类型间的转换
 */
public class TestChange {
    public static void main(String[] args) {
        //1.自动类型转换
        double d = 1.25 + 1;//double = double + int
        System.out.println(d);//2.25
        //2.强制类型转换
        int i = (int)1.25;// 大转小
        System.out.println(i);
        //3.强制转换时的精度丢失和溢出
        float a = (float) 0.123456789;
        double b = a;
        System.out.println(a);//0.12345679 造成了精度丢失
        System.out.println(b);

        int x = 128;
        byte y = (byte) x;
        System.out.println(y);//-128 造成了溢出
        // 因此写程序时，选择合适的数据类型是解决问题的第一步！

        //4.在多种类型参与运算，结果会向较大类型进行转换
        int res =(int) (0.25f + 1l + 0.75 + 2);
        System.out.println(res);
        //5.对于byte、short、char、int参与运算，编译会将byte、short、char转换为int，再运算
        short m = 1;
        byte n = 2;
        char c = '中';
        int res2 = m + n + c;
        System.out.println(res2);


    }
}
